One essential value of electronic spreadsheets is to organize data into columns and rows, while automating tedious calculations. A typical, common, and valuable example of such a set of data organized into columns and rows is a range of cells. Even if a range of cells receives a formal and strict definition within electronic spreadsheet environments, it is flexible enough so that information can be included in either a single range of cells or in a set of several ranges of cells. Ranges of cells therefore are quite useful objects. A range of cell can be defined and processed as a whole entity. For example it can be copied from one place to another place within the spreadsheet or from one spreadsheet file to another spreadsheet file. Ranges of cells are widely used in applications developed in the field of electronic spreadsheets. Most often, the ranges of cells are arranged according to some kind of structure, thus becoming structured ranges of cells. The contents of each cell is defined within an element, where an element is defined as a row of a structured range of cells, and then the same kind of element is repeated a certain number of times, to store/process a variable number of information pieces. Most of the time, several instances of similar structured ranges of cells are used. In the current context where no other tool is really available, instances of such similar structured ranges of cells are frequently created through cut/copy and paste operations. In order to keep a high level of intellectual control over growing quantities of information, human being needs to organize or structure this information. The hierarchical model is often used, because allowing nested structures. A typical and well known example of such a hierarchical structure is the directory tree of computer Operating Systems, such as DOS or Microsoft Windows. The root directory may contain files and/or a number of directories, which may themselves contain files and/or a number of directories, which may themselves contain files and/or a number of directories, etc. Recursivity help structure the information and maintain intellectual control over it. This need for recursivity applies as well, in spreadsheet environment to structured ranges of cells. When several instances of structured ranges of cells are defined and used in an electronic spreadsheet file, they are often themselves structured according to a specific superstructure arrangement or “array of structured ranges of cells” which can be duplicated between different electronic spreadsheet files or even within a single electronic spreadsheet file. Within such an array of structured ranges of cells, it is common to find several structured ranges of cells which follow the same intermediate superstructure, and also some other structured ranges of cells following other intermediate superstructures. The array of structured ranges of cells may then be viewed as a set of aggregated intermediate superstructures of structured ranges of cells. In the current context of conventional electronic spreadsheets, instances of such arrays of structured ranges of cells are frequently created through cut/copy and paste operations.
Creating a new instance of a structured range of cells is complex and lengthy, particularly because a conventional range of cells shows strong limitations:                (i) structure information (such as number of columns, number of rows), format information (such as font style, color or border), and contents information (such as formulas or raw—or informative—data) are mixed,        (ii) the size of the range of cell is fixed at a given instant.        
Therefore, when a spreadsheet user wants to create another range of cells with an identical structure, he/she needs to perform successively several operations. He/she needs to:    1. copy-paste an existing structured range of cells,    2. distinguish between areas containing raw—or informative—data and areas containing generic content such as formulas,    3. empty the copied structured range of cells of the copied raw data while trying to keep the structure, format and generic contents,    4. adjust the size of the structured copied range of cells to his new needs.    5. eventually, fill the raw data area with default values, in order to ease subsequent data entry.
Furthermore, before copying and pasting a structured range of cells, the user must prepare the place for the copied structured range of cells, with the risk of overwriting, and therefore loosing the preexisting information at the destination location. This chain of operations rapidly becomes tedious, lengthy and prone to error, especially when manipulated structured ranges of cells increase in size and complexity.
Updating a structured range of cells is also very often complex, lengthy and prone to error. Such updates include additions of new elements and modifications of existing elements. Several types of modifications can be performed without any specific problem in an electronic spreadsheet environment. However, this is not the case for some modifications, for instance for insertions. For example, if a row is added by means of a conventional function such as the spreadsheet row insertion method, the created row will be empty. This means that the value for every cell of every element needs to be entered. Entering data or executing copy/paste operations represents an important workload for the user, while the content of each element is known to a certain extent, and should follow the general structure of the structured range of cells. Moreover, normal spreadsheet functions such as the row insertion function may jeopardize the contents of some neighbour elements. A good example of an insertion jeopardising neighbour elements is the insertion of a row in a range of cells in which, on every row, a cell such as C17 or more generally (Cn), is pointing to a cell in the previous row, through a formula such as C16+B17, or more generally (Cn−1)+(Bn). After row insertion between rows 16 and 17, the formula in cell C18 becomes C16+B18 instead of the generic formula C17+B18, or more generally after row insertion between rows (n−1) and (n), the formula in cell (Cn+1) becomes (Cn−1)+(Bn+1) instead of the generic formula (Cn)+(Bn+1). As a second example, there are cases where modifications must be done consistently throughout the structured range of cells. Today, this can only be done using specific copy-paste operations applied to the exact area to be modified. This may prove to be very difficult, especially when manipulated structured ranges of cells increase in size and complexity.
When recusivity is involved, creating a new instance of an array of structured ranges of cells is even more complex and lengthy, particularly because an array of structured range of cells involves a twofold level of structure:                At the lower level a set of multiple, and even different, instances of structured ranges of cells must be created. As previously mentioned, this operation is itself complex, lengthy and prone to error due to the limitations of conventional ranges of cells.        At the higher level, the creation of an instance of an array of structured range of cells would require that the spreadsheet user carry on several operations:                    1. Identify an existing instance of an array of structured ranges of cells, used as a reference for creating the new instance.            2. Prepare the place, at the destination location, to hold the new instance, at the risk of possibly overwriting, and then loosing, any preexisting information.            3. Copy-Paste the reference instance of the array of structured range of cells onto the destination location.            4. Adjust the structure of the newly created instance of an array of structured ranges of cells to his/her new needs, by either deleting or introducing within the array one or several intermediate superstructures of instances of structured ranges of cells.            5. Clean the content of each instance of structured ranges of cells comprised within the array.            6. Eventually fill each instance of structured ranges of cells with the relevant default values.                        
Updating an array of structured ranges of cells is also very often complex, lengthy and prone to error. Indeed such update may involve either the introduction of new objects within the array of structured ranges of cells, or the modification of existing objects within the array of structured ranges of cells. The first difficulty is to determine whether the user wants to modify an existing structured range of cells comprised within the array of structured ranges of cells (for example by adding a row within an existing structured range of cells), or modify the array of structured ranges of cells (for example by adding an intermediate superstructure). In the first case, such a modification, as already seen, is by itself a risky operation. In the second case, the complexity of the operation is further increased by the amount of information and the hierarchy of structures to be manipulated. The conventional tools available in electronic spreadsheet environment do not assist the user handling such alternatives, so that any user error during the chain of operation may be difficult and lengthily to recover.
U.S. Pat. No. 5,033,009 entitled “System for generating worksheet files for electronic spreadsheets” Steven J. Dubnoff, Mar. 3rd, 1989, is an interesting document of prior art. This invention develops the concepts of pattern data and variable data that may be integrated to generate a worksheet file through a worksheet file generator. However, this invention shows many limitations preventing it from solving the set of issues presented here above and, in particular:                It aims at producing a new output spreadsheet from a set of two input files, while there is a need, within a user application environment, to create and manipulate new entities within an existing electronic spreadsheet file, that the user is familiar with.        It contains no mechanism allowing the direct update of the output spreadsheet, other than the regular spreadsheet tool.        It contains no capability to manipulate within the same spreadsheet file, a variable number of different structures and a variable number of instances of each of those structure. The granularity is limited to the spreadsheet file, while the required granularity is that of a structured range of cells.        The so called “file format specification” really mixes structure information (such as number and relative position of columns and rows), presentation information (such as font, color, background, etc.), contents information (such as formulas, etc.).        